// src/router/routes.ts
import { lazy, Suspense } from 'react'
import { Navigate } from 'react-router-dom'
// 懒加载组件
// const Dashboard = lazy(() => import('../pages/Dashboard'))
// const UserManagement = lazy(() => import('../pages/UserManagement'))
// const RoleManagement = lazy(() => import('../pages/RoleManagement'))
// const PermissionManagement = lazy(() => import('../pages/PermissionManagement'))
const Settings = lazy(() => import('@/pages/settings'))
// const Profile = lazy(() => import('../pages/Profile'))
// const Login = lazy(() => import('../pages/Login'))
// const NotFound = lazy(() => import('../pages/NotFound'))
const Home = lazy(() => import('@/pages/home'))
const NotFound = lazy(() => import('@/pages/not-found'))
import { Loading } from '@/components/ui/loading'

// // 基础路由（无需权限）
// export const baseRoutes: RouteConfig[] = [
//   {
//     path: '/login',
//     name: 'login',
//     element: Login,
//     meta: {
//       title: '登录',
//       showInMenu: false,
//       requiresAuth: false
//     }
//   }
// ]

// 应用路由（需要权限控制）
export const appRoutes = [
  {
    path: '/',
    name: 'home',
    // 必须用 Suspense 包裹
    element: <Suspense fallback={<Loading />}>
      <Home />
    </Suspense>,
    meta: {
      title: '首页',
      showInMenu: true,
      requiresAuth: true,
      roles: ['admin', 'user']
    }
  },
  {
    path: '/home',
    exact: true,
    element: <Navigate to='/' />,
    meta: {
      title: '首页',
      showInMenu: true,
      requiresAuth: true,
      roles: ['admin', 'user']
    },
  },
  {
    path: '/settings',
    exact: true,
    // 必须用 Suspense 包裹
    element: <Suspense fallback={<Loading />}>
      <Settings />
    </Suspense>,
    meta: {
      title: '设置',
      showInMenu: true,
      requiresAuth: true,
      roles: ['admin', 'user']
    },
  },
  {
    path: '*',
    name: 'notFound',
    element: <NotFound />,
    meta: {
      title: '页面不存在',
      showInMenu: false
    }
  }
  // {
  //   path: '/dashboard',
  //   name: 'dashboard',
  //   element: Dashboard,
  //   meta: {
  //     title: '仪表盘',
  //     showInMenu: true,
  //     requiresAuth: true,
  //     roles: ['admin', 'editor', 'viewer']
  //   }
  // },
  // {
  //   path: '/system',
  //   name: 'system',
  //   meta: {
  //     title: '系统管理',
  //     showInMenu: true,
  //     requiresAuth: true,
  //     roles: ['admin']
  //   },
  //   children: [
  //     {
  //       path: 'user',
  //       name: 'user',
  //       element: UserManagement,
  //       meta: {
  //         title: '用户管理',
  //         showInMenu: true,
  //         requiresAuth: true,
  //         roles: ['admin']
  //       }
  //     },
  //     {
  //       path: 'role',
  //       name: 'role',
  //       element: RoleManagement,
  //       meta: {
  //         title: '角色管理',
  //         showInMenu: true,
  //         requiresAuth: true,
  //         roles: ['admin']
  //       }
  //     },
  //     {
  //       path: 'permission',
  //       name: 'permission',
  //       element: PermissionManagement,
  //       meta: {
  //         title: '权限管理',
  //         showInMenu: true,
  //         requiresAuth: true,
  //         roles: ['admin']
  //       }
  //     }
  //   ]
  // },
  // {
  //   path: '/profile',
  //   name: 'profile',
  //   element: Profile,
  //   meta: {
  //     title: '个人中心',
  //     showInMenu: true,
  //     requiresAuth: true,
  //     roles: ['admin', 'editor', 'viewer']
  //   }
  // },
  // {
  //   path: '/settings',
  //   name: 'settings',
  //   element: Settings,
  //   meta: {
  //     title: '系统设置',
  //     showInMenu: true,
  //     requiresAuth: true,
  //     roles: ['admin']
  //   }
  // },
  // {
  //   path: '*',
  //   name: 'notFound',
  //   element: NotFound,
  //   meta: {
  //     title: '页面不存在',
  //     showInMenu: false
  //   }
  // }
]

// 合并所有路由
export const allRoutes = [
  // ...baseRoutes,
  ...appRoutes
]
